/**

   Debug.h
   =======

   Header for debugging

**/


#ifndef DEBUG_H
#define DEBUG_H


/**

   Includes
   --------
   
   - btree.h    : btree header
   - huffman.h  : huffman tree header
   - heap.h     : heap header
   - llist.h    : linked list header
   - bitfield.h : bitfield header
   - uuid.h     : uuid
   - file.h     : file

**/


#include "../master/btree.h"
#include "../master/huffman.h"
#include "../master/heap.h"
#include "../master/llist.h"
#include "../master/file.h"
#include "bitfield.h"
#include "uuid.h"

/**

   Prototypes
   ----------

**/

void debug_print_btree(struct b_tree* t, struct huff_tree* h);
void debug_print_htree(struct huff_tree* t);
void debug_print_heap(struct heap* h);
void debug_print_llist(struct llist* ll);
void debug_print_bitfield(struct bitfield* bf);
char* debug_huff_decode(struct bitfield* bf, struct huff_tree* t);
void debug_print_uuid(struct uuid* uuid);
void debug_print_file(struct file* file);

#endif
